<?php
namespace Common\Model;

/**
 * 用户登录嘻嘻你表
 * @modify trainyao 2016-04-21 创建
 * @index `userlogin` (`mobile`)
 */

Class UserLoginModel extends BaseModel
{
    protected $trueTableName = 'bk_user_login';

    /**
     * 根据手机号查询
     * @modify trainyao 2016-04-21 创建
     * @param  string   $mobile    手机号
     * @return array               信息数组,查询失败返回空数组
     */
    public function getInfoByMobile($mobile, $areaCode = null) {
        if (is_array($mobile)) {
            $mobile = implode(',', $mobile);
        }

        if (!is_null($areaCode)) {
            $option['areacode'] = $areaCode;
        }

        if (strchr($mobile, ',')) {
            $option['mobile'] = array('in', $mobile);
            $data = $this->where($option)->select();
        } else {
            $option['mobile'] = $mobile;
            $data = $this->where($option)->find();
        }

        return empty($data) ? array() : $data;
    }

    /**
     * 根据id查询数据
     * @modify trainyao 2016-04-27 创建
     * @param  integer   $userId    用户Id
     * @return array               信息数组,查询失败返回空数组
     */
    public function getInfo($userId) {
        $option = array(
            'id' => $userId,
        );
        $data = $this->where($option)->find();
        return empty($data) ? array() : $data;
    }

    /**
     * 注册
     * @modify trainyao 2016-04-27 创建
     * @modify wenhui 2017-05-25 新增区号
     * @param  string   $mobile    手机
     * @param  string   $password  用户密码
     * @param  string   $name      姓名
     * @param  string   $areaCode      区号
     * @return boolean              执行注册结果
     */
    public function register($mobile, $password, $name = '', $areaCode = '86') {
        $data = array(
            'mobile' => $mobile,
            'password' => $password,
            'name' => $name,
            'areacode' => $areaCode,
        );
        return $this->add($data) ? true : false;
    }

    /**
     * 修改密码
     * @modify trainyao 2016-04-27 创建
     * @param  integer   $userId    用户id
     * @param  string   $password  密码字符串
     * @return Boolean              执行结果
     */
    public function savePassword($userId, $password) {
        $option = array(
            'id' => $userId,
        );
        $data = array(
            'password' => $password,
        );
        return $this->where($option)->save($data) === false ? false : true;
    }

     /**
     * 获取全部数据
     * @modify wenhui 2017-04-01 创建
     * @return array               信息数组,查询失败返回空数组
     */
    public function getAllInfo() {
        $data = $this->field('id,name,areacode,mobile')->where(array('isdelete' => 0, 'areacode' => '86'))->select();
        return empty($data) ? array() : $data;
    }

    /**
     * 添加全部数据
     * @modify wenhui 2017-04-01 创建
     * @return
     */
    public function addAllInfo($data) {
        $trueDate = array();
        foreach ($data as $key => $dataItem) {
            $dateItem = array(
                'mobile' => $dataItem['mobile'],
                'password' =>hash('sha256', ''),
                'name' => $dataItem['name'],
            );
            array_push($trueDate,$dateItem);
        }

        $this->addAll($trueDate);
        return;
    }
}
